<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:90a758ef-89a0-4ded-bad9-7ed91558f8ef(spbsu.silina.grammarPropertiesLanguage.structure)">
  <persistence version="3" />
  <refactoringHistory>
    <refactoringContext modelVersion="0">
      <refactoring refactoringClass="jetbrains.mps.refactoring.renameLanguage.LanguageRenamer$MyRefactoring" />
      <moveMap />
      <conceptFeatureMap>
        <entry>
          <key featureName="All" conceptFQName="jetbrains.mps.spellchecker.structure.All" featureKind="CONCEPT" />
          <value featureName="All" conceptFQName="spbsu.mps.spellchecker.structure.All" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="AllDerived" conceptFQName="jetbrains.mps.spellchecker.structure.AllDerived" featureKind="CONCEPT" />
          <value featureName="AllDerived" conceptFQName="spbsu.mps.spellchecker.structure.AllDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="BinaryOperation" conceptFQName="jetbrains.mps.spellchecker.structure.BinaryOperation" featureKind="CONCEPT" />
          <value featureName="BinaryOperation" conceptFQName="spbsu.mps.spellchecker.structure.BinaryOperation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Conjunction" conceptFQName="jetbrains.mps.spellchecker.structure.Conjunction" featureKind="CONCEPT" />
          <value featureName="Conjunction" conceptFQName="spbsu.mps.spellchecker.structure.Conjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Derivation" conceptFQName="jetbrains.mps.spellchecker.structure.Derivation" featureKind="CONCEPT" />
          <value featureName="Derivation" conceptFQName="spbsu.mps.spellchecker.structure.Derivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="DerivedQuantification" conceptFQName="jetbrains.mps.spellchecker.structure.DerivedQuantification" featureKind="CONCEPT" />
          <value featureName="DerivedQuantification" conceptFQName="spbsu.mps.spellchecker.structure.DerivedQuantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Disjunction" conceptFQName="jetbrains.mps.spellchecker.structure.Disjunction" featureKind="CONCEPT" />
          <value featureName="Disjunction" conceptFQName="spbsu.mps.spellchecker.structure.Disjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="EmptyString" conceptFQName="jetbrains.mps.spellchecker.structure.EmptyString" featureKind="CONCEPT" />
          <value featureName="EmptyString" conceptFQName="spbsu.mps.spellchecker.structure.EmptyString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Exists" conceptFQName="jetbrains.mps.spellchecker.structure.Exists" featureKind="CONCEPT" />
          <value featureName="Exists" conceptFQName="spbsu.mps.spellchecker.structure.Exists" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="ExistsDerived" conceptFQName="jetbrains.mps.spellchecker.structure.ExistsDerived" featureKind="CONCEPT" />
          <value featureName="ExistsDerived" conceptFQName="spbsu.mps.spellchecker.structure.ExistsDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Formula" conceptFQName="jetbrains.mps.spellchecker.structure.Formula" featureKind="CONCEPT" />
          <value featureName="Formula" conceptFQName="spbsu.mps.spellchecker.structure.Formula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="LeftmostDerivation" conceptFQName="jetbrains.mps.spellchecker.structure.LeftmostDerivation" featureKind="CONCEPT" />
          <value featureName="LeftmostDerivation" conceptFQName="spbsu.mps.spellchecker.structure.LeftmostDerivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Length" conceptFQName="jetbrains.mps.spellchecker.structure.Length" featureKind="CONCEPT" />
          <value featureName="Length" conceptFQName="spbsu.mps.spellchecker.structure.Length" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Negotiation" conceptFQName="jetbrains.mps.spellchecker.structure.Negotiation" featureKind="CONCEPT" />
          <value featureName="Negotiation" conceptFQName="spbsu.mps.spellchecker.structure.Negotiation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="NonTerminal" conceptFQName="jetbrains.mps.spellchecker.structure.NonTerminal" featureKind="CONCEPT" />
          <value featureName="NonTerminal" conceptFQName="spbsu.mps.spellchecker.structure.NonTerminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Quantification" conceptFQName="jetbrains.mps.spellchecker.structure.Quantification" featureKind="CONCEPT" />
          <value featureName="Quantification" conceptFQName="spbsu.mps.spellchecker.structure.Quantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RegexpMatch" conceptFQName="jetbrains.mps.spellchecker.structure.RegexpMatch" featureKind="CONCEPT" />
          <value featureName="RegexpMatch" conceptFQName="spbsu.mps.spellchecker.structure.RegexpMatch" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RuleSet" conceptFQName="jetbrains.mps.spellchecker.structure.RuleSet" featureKind="CONCEPT" />
          <value featureName="RuleSet" conceptFQName="spbsu.mps.spellchecker.structure.RuleSet" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Terminal" conceptFQName="jetbrains.mps.spellchecker.structure.Terminal" featureKind="CONCEPT" />
          <value featureName="Terminal" conceptFQName="spbsu.mps.spellchecker.structure.Terminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TerminalString" conceptFQName="jetbrains.mps.spellchecker.structure.TerminalString" featureKind="CONCEPT" />
          <value featureName="TerminalString" conceptFQName="spbsu.mps.spellchecker.structure.TerminalString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TrueFormula" conceptFQName="jetbrains.mps.spellchecker.structure.TrueFormula" featureKind="CONCEPT" />
          <value featureName="TrueFormula" conceptFQName="spbsu.mps.spellchecker.structure.TrueFormula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Variable" conceptFQName="jetbrains.mps.spellchecker.structure.Variable" featureKind="CONCEPT" />
          <value featureName="Variable" conceptFQName="spbsu.mps.spellchecker.structure.Variable" featureKind="CONCEPT" />
        </entry>
      </conceptFeatureMap>
    </refactoringContext>
    <refactoringContext modelVersion="1">
      <refactoring refactoringClass="jetbrains.mps.refactoring.renameLanguage.LanguageRenamer$MyRefactoring" />
      <moveMap />
      <conceptFeatureMap>
        <entry>
          <key featureName="All" conceptFQName="spbsu.mps.spellchecker.structure.All" featureKind="CONCEPT" />
          <value featureName="All" conceptFQName="spbsu.silina.spellchecker.structure.All" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="AllDerived" conceptFQName="spbsu.mps.spellchecker.structure.AllDerived" featureKind="CONCEPT" />
          <value featureName="AllDerived" conceptFQName="spbsu.silina.spellchecker.structure.AllDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="BinaryOperation" conceptFQName="spbsu.mps.spellchecker.structure.BinaryOperation" featureKind="CONCEPT" />
          <value featureName="BinaryOperation" conceptFQName="spbsu.silina.spellchecker.structure.BinaryOperation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Conjunction" conceptFQName="spbsu.mps.spellchecker.structure.Conjunction" featureKind="CONCEPT" />
          <value featureName="Conjunction" conceptFQName="spbsu.silina.spellchecker.structure.Conjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Derivation" conceptFQName="spbsu.mps.spellchecker.structure.Derivation" featureKind="CONCEPT" />
          <value featureName="Derivation" conceptFQName="spbsu.silina.spellchecker.structure.Derivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="DerivedQuantification" conceptFQName="spbsu.mps.spellchecker.structure.DerivedQuantification" featureKind="CONCEPT" />
          <value featureName="DerivedQuantification" conceptFQName="spbsu.silina.spellchecker.structure.DerivedQuantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Disjunction" conceptFQName="spbsu.mps.spellchecker.structure.Disjunction" featureKind="CONCEPT" />
          <value featureName="Disjunction" conceptFQName="spbsu.silina.spellchecker.structure.Disjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="EmptyString" conceptFQName="spbsu.mps.spellchecker.structure.EmptyString" featureKind="CONCEPT" />
          <value featureName="EmptyString" conceptFQName="spbsu.silina.spellchecker.structure.EmptyString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Exists" conceptFQName="spbsu.mps.spellchecker.structure.Exists" featureKind="CONCEPT" />
          <value featureName="Exists" conceptFQName="spbsu.silina.spellchecker.structure.Exists" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="ExistsDerived" conceptFQName="spbsu.mps.spellchecker.structure.ExistsDerived" featureKind="CONCEPT" />
          <value featureName="ExistsDerived" conceptFQName="spbsu.silina.spellchecker.structure.ExistsDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Formula" conceptFQName="spbsu.mps.spellchecker.structure.Formula" featureKind="CONCEPT" />
          <value featureName="Formula" conceptFQName="spbsu.silina.spellchecker.structure.Formula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Implication" conceptFQName="spbsu.mps.spellchecker.structure.Implication" featureKind="CONCEPT" />
          <value featureName="Implication" conceptFQName="spbsu.silina.spellchecker.structure.Implication" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="LeftmostDerivation" conceptFQName="spbsu.mps.spellchecker.structure.LeftmostDerivation" featureKind="CONCEPT" />
          <value featureName="LeftmostDerivation" conceptFQName="spbsu.silina.spellchecker.structure.LeftmostDerivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Length" conceptFQName="spbsu.mps.spellchecker.structure.Length" featureKind="CONCEPT" />
          <value featureName="Length" conceptFQName="spbsu.silina.spellchecker.structure.Length" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Negotiation" conceptFQName="spbsu.mps.spellchecker.structure.Negotiation" featureKind="CONCEPT" />
          <value featureName="Negotiation" conceptFQName="spbsu.silina.spellchecker.structure.Negotiation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="NonTerminal" conceptFQName="spbsu.mps.spellchecker.structure.NonTerminal" featureKind="CONCEPT" />
          <value featureName="NonTerminal" conceptFQName="spbsu.silina.spellchecker.structure.NonTerminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Quantification" conceptFQName="spbsu.mps.spellchecker.structure.Quantification" featureKind="CONCEPT" />
          <value featureName="Quantification" conceptFQName="spbsu.silina.spellchecker.structure.Quantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RegexpMatch" conceptFQName="spbsu.mps.spellchecker.structure.RegexpMatch" featureKind="CONCEPT" />
          <value featureName="RegexpMatch" conceptFQName="spbsu.silina.spellchecker.structure.RegexpMatch" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RuleSet" conceptFQName="spbsu.mps.spellchecker.structure.RuleSet" featureKind="CONCEPT" />
          <value featureName="RuleSet" conceptFQName="spbsu.silina.spellchecker.structure.RuleSet" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Terminal" conceptFQName="spbsu.mps.spellchecker.structure.Terminal" featureKind="CONCEPT" />
          <value featureName="Terminal" conceptFQName="spbsu.silina.spellchecker.structure.Terminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TerminalString" conceptFQName="spbsu.mps.spellchecker.structure.TerminalString" featureKind="CONCEPT" />
          <value featureName="TerminalString" conceptFQName="spbsu.silina.spellchecker.structure.TerminalString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TrueFormula" conceptFQName="spbsu.mps.spellchecker.structure.TrueFormula" featureKind="CONCEPT" />
          <value featureName="TrueFormula" conceptFQName="spbsu.silina.spellchecker.structure.TrueFormula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Variable" conceptFQName="spbsu.mps.spellchecker.structure.Variable" featureKind="CONCEPT" />
          <value featureName="Variable" conceptFQName="spbsu.silina.spellchecker.structure.Variable" featureKind="CONCEPT" />
        </entry>
      </conceptFeatureMap>
    </refactoringContext>
    <refactoringContext modelVersion="2">
      <refactoring refactoringClass="jetbrains.mps.refactoring.renameLanguage.LanguageRenamer$MyRefactoring" />
      <moveMap />
      <conceptFeatureMap>
        <entry>
          <key featureName="All" conceptFQName="spbsu.silina.spellchecker.structure.All" featureKind="CONCEPT" />
          <value featureName="All" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.All" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="AllDerived" conceptFQName="spbsu.silina.spellchecker.structure.AllDerived" featureKind="CONCEPT" />
          <value featureName="AllDerived" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.AllDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="AllRules" conceptFQName="spbsu.silina.spellchecker.structure.AllRules" featureKind="CONCEPT" />
          <value featureName="AllRules" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.AllRules" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="BinaryOperation" conceptFQName="spbsu.silina.spellchecker.structure.BinaryOperation" featureKind="CONCEPT" />
          <value featureName="BinaryOperation" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.BinaryOperation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Conjunction" conceptFQName="spbsu.silina.spellchecker.structure.Conjunction" featureKind="CONCEPT" />
          <value featureName="Conjunction" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Conjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Derivation" conceptFQName="spbsu.silina.spellchecker.structure.Derivation" featureKind="CONCEPT" />
          <value featureName="Derivation" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Derivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="DerivedQuantification" conceptFQName="spbsu.silina.spellchecker.structure.DerivedQuantification" featureKind="CONCEPT" />
          <value featureName="DerivedQuantification" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.DerivedQuantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Disjunction" conceptFQName="spbsu.silina.spellchecker.structure.Disjunction" featureKind="CONCEPT" />
          <value featureName="Disjunction" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Disjunction" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="EmptyString" conceptFQName="spbsu.silina.spellchecker.structure.EmptyString" featureKind="CONCEPT" />
          <value featureName="EmptyString" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.EmptyString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Exists" conceptFQName="spbsu.silina.spellchecker.structure.Exists" featureKind="CONCEPT" />
          <value featureName="Exists" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Exists" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="ExistsDerived" conceptFQName="spbsu.silina.spellchecker.structure.ExistsDerived" featureKind="CONCEPT" />
          <value featureName="ExistsDerived" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.ExistsDerived" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Formula" conceptFQName="spbsu.silina.spellchecker.structure.Formula" featureKind="CONCEPT" />
          <value featureName="Formula" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Formula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Implication" conceptFQName="spbsu.silina.spellchecker.structure.Implication" featureKind="CONCEPT" />
          <value featureName="Implication" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Implication" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="InitialNonTerminal" conceptFQName="spbsu.silina.spellchecker.structure.InitialNonTerminal" featureKind="CONCEPT" />
          <value featureName="InitialNonTerminal" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.InitialNonTerminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="LeftmostDerivation" conceptFQName="spbsu.silina.spellchecker.structure.LeftmostDerivation" featureKind="CONCEPT" />
          <value featureName="LeftmostDerivation" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.LeftmostDerivation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Length" conceptFQName="spbsu.silina.spellchecker.structure.Length" featureKind="CONCEPT" />
          <value featureName="Length" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Length" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Negotiation" conceptFQName="spbsu.silina.spellchecker.structure.Negotiation" featureKind="CONCEPT" />
          <value featureName="Negotiation" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Negotiation" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="NonTerminal" conceptFQName="spbsu.silina.spellchecker.structure.NonTerminal" featureKind="CONCEPT" />
          <value featureName="NonTerminal" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.NonTerminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Quantification" conceptFQName="spbsu.silina.spellchecker.structure.Quantification" featureKind="CONCEPT" />
          <value featureName="Quantification" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Quantification" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RegexpMatch" conceptFQName="spbsu.silina.spellchecker.structure.RegexpMatch" featureKind="CONCEPT" />
          <value featureName="RegexpMatch" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.RegexpMatch" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Rule" conceptFQName="spbsu.silina.spellchecker.structure.Rule" featureKind="CONCEPT" />
          <value featureName="Rule" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Rule" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="RuleSet" conceptFQName="spbsu.silina.spellchecker.structure.RuleSet" featureKind="CONCEPT" />
          <value featureName="RuleSet" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.RuleSet" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Terminal" conceptFQName="spbsu.silina.spellchecker.structure.Terminal" featureKind="CONCEPT" />
          <value featureName="Terminal" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Terminal" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TerminalString" conceptFQName="spbsu.silina.spellchecker.structure.TerminalString" featureKind="CONCEPT" />
          <value featureName="TerminalString" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.TerminalString" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="TrueFormula" conceptFQName="spbsu.silina.spellchecker.structure.TrueFormula" featureKind="CONCEPT" />
          <value featureName="TrueFormula" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.TrueFormula" featureKind="CONCEPT" />
        </entry>
        <entry>
          <key featureName="Variable" conceptFQName="spbsu.silina.spellchecker.structure.Variable" featureKind="CONCEPT" />
          <value featureName="Variable" conceptFQName="spbsu.silina.grammarPropertiesLanguage.structure.Variable" featureKind="CONCEPT" />
        </entry>
      </conceptFeatureMap>
    </refactoringContext>
  </refactoringHistory>
  <language namespace="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959028c(jetbrains.mps.lang.structure.constraints)" version="11" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590283(jetbrains.mps.lang.core.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="1" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590328(jetbrains.mps.baseLanguage.collections.constraints)" version="6" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902c1(jetbrains.mps.baseLanguage.constraints)" version="83" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="4" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590334(jetbrains.mps.baseLanguage.closures.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ae(jetbrains.mps.lang.typesystem.constraints)" version="17" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590340(jetbrains.mps.lang.pattern.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902fb(jetbrains.mps.lang.smodel.constraints)" version="21" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895903fe(jetbrains.mps.baseLanguage.strings.constraints)" version="1" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="1" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902db(jetbrains.mps.baseLanguage.blTypes.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590402(jetbrains.mps.baseLanguage.strings.structure)" version="9" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959033d(jetbrains.mps.lang.annotations.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590515(jetbrains.mps.baseLanguage.regexp.constraints)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590518(jetbrains.mps.baseLanguage.regexp.structure)" version="0" />
  <languageAspect modelUID="r:90a758ef-89a0-4ded-bad9-7ed91558f8ef(spbsu.silina.grammarPropertiesLanguage.structure)" version="2" />
  <devkit namespace="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
  <maxImportIndex value="3" />
  <import index="1" modelUID="r:90a758ef-89a0-4ded-bad9-7ed91558f8ef(spbsu.silina.grammarPropertiesLanguage.structure)" version="2" />
  <import index="2" modelUID="r:00000000-0000-4000-0000-011c89590518(jetbrains.mps.baseLanguage.regexp.structure)" version="0" />
  <import index="3" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="1" />
  <visible index="2" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232283326360">
    <property name="name" value="Formula" />
    <property name="rootable" value="false" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1232289508175">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248677642">
      <property name="value" value="formula" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232285571505">
    <property name="name" value="Conjunction" />
    <property name="rootable" value="false" />
    <property name="package" value="operations" />
    <link role="extends" targetNodeId="1232296855910" resolveInfo="BinaryOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232297856765">
      <property name="value" value="conjunction" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232297194437">
    <property name="name" value="Terminal" />
    <property name="package" value="variables" />
    <link role="extends" targetNodeId="1235322128696" resolveInfo="Symbol" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232297675645">
      <property name="value" value="terminal" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232297361306">
    <property name="name" value="NonTerminal" />
    <property name="package" value="variables" />
    <link role="extends" targetNodeId="1235322128696" resolveInfo="Symbol" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232297747529">
      <property name="value" value="nonterminal" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232296855910">
    <property name="name" value="BinaryOperation" />
    <property name="rootable" value="false" />
    <property name="package" value="operations" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232379409280">
      <property name="metaClass" value="aggregation" />
      <property name="sourceCardinality" value="1" />
      <property name="role" value="formula1" />
      <link role="target" targetNodeId="1232283326360" resolveInfo="Formula" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232379409281">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="formula2" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232283326360" resolveInfo="Formula" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1232299199770">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232360988139">
      <property name="value" value="binary operation" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232298925053">
    <property name="name" value="Disjunction" />
    <property name="rootable" value="false" />
    <property name="package" value="operations" />
    <link role="extends" targetNodeId="1232296855910" resolveInfo="BinaryOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232299154765">
      <property name="value" value="disjunction" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232299400568">
    <property name="name" value="RuleSet" />
    <property name="rootable" value="true" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="implements" type="jetbrains.mps.lang.structure.structure.InterfaceConceptReference" id="1232299424927">
      <link role="intfc" targetNodeId="2v.1169194658468" resolveInfo="INamedConcept" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232299443827">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="formula" />
      <property name="sourceCardinality" value="1..n" />
      <link role="target" targetNodeId="1232283326360" resolveInfo="Formula" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232300259873">
      <property name="value" value="ruleset" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232300288437">
    <property name="name" value="Quantification" />
    <property name="package" value="quantifications" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232301498571">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="formula" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232283326360" resolveInfo="Formula" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1232300390022">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232300400746">
      <property name="value" value="quantification" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232301037610">
    <property name="name" value="Variable" />
    <property name="package" value="variables" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="implements" type="jetbrains.mps.lang.structure.structure.InterfaceConceptReference" id="1232301054606">
      <link role="intfc" targetNodeId="2v.1169194658468" resolveInfo="INamedConcept" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1232301060699">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232301064621">
      <property name="value" value="variable" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232303430291">
    <property name="name" value="Derivation" />
    <property name="package" value="derivations" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232303796916">
      <property name="value" value="derivation" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232534952989">
      <property name="metaClass" value="reference" />
      <property name="role" value="nonterminal" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232297361306" resolveInfo="NonTerminal" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235248897289">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="regexp" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235248775403" resolveInfo="Regexp" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232362653980">
    <property name="name" value="LeftmostDerivation" />
    <property name="package" value="derivations" />
    <link role="extends" targetNodeId="1232303430291" resolveInfo="Derivation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232362835844">
      <property name="value" value="leftmostly derives" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232378340245">
    <property name="name" value="TrueFormula" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232379839635">
      <property name="value" value="true" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232378490924">
    <property name="package" value="operations" />
    <property name="name" value="Negotiation" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1232378557557">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="formula" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232283326360" resolveInfo="Formula" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232379827857">
      <property name="value" value="not" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1232379057710">
    <property name="package" value="operations" />
    <property name="name" value="Implication" />
    <link role="extends" targetNodeId="1232296855910" resolveInfo="BinaryOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1232379805027">
      <property name="value" value="implication" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1233232259885">
    <property name="package" value="variables" />
    <property name="name" value="Production" />
    <link role="extends" targetNodeId="1232301037610" resolveInfo="Variable" />
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235220403540">
    <property name="name" value="SetOperation" />
    <property name="package" value="set_operations" />
    <link role="extends" targetNodeId="1235243559248" resolveInfo="Set" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235244136417">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="set1" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235243559248" resolveInfo="Set" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235244149227">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="set2" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235243559248" resolveInfo="Set" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235244343562">
      <property name="value" value="set operation" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235243559248">
    <property name="package" value="variables" />
    <property name="name" value="Set" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235243592410">
      <property name="value" value="set" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235323260943">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="implements" type="jetbrains.mps.lang.structure.structure.InterfaceConceptReference" id="1235323002423">
      <link role="intfc" targetNodeId="2v.1169194658468" resolveInfo="INamedConcept" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235244051190">
    <property name="package" value="set_operations" />
    <property name="name" value="Union" />
    <link role="extends" targetNodeId="1235220403540" resolveInfo="SetOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235244326614">
      <property name="value" value="union" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235244308707">
    <property name="package" value="set_operations" />
    <property name="name" value="Intersection" />
    <link role="extends" targetNodeId="1235220403540" resolveInfo="SetOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235244366334">
      <property name="value" value="intersection" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235244435474">
    <property name="package" value="set_operations" />
    <property name="name" value="Complement" />
    <link role="extends" targetNodeId="1235220403540" resolveInfo="SetOperation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235244456346">
      <property name="value" value="complement" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235247353455">
    <property name="package" value="quantifications" />
    <property name="name" value="NonTerminalQuantification" />
    <link role="extends" targetNodeId="1232300288437" resolveInfo="Quantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235247381322">
      <property name="value" value="non terminal quantification" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235247403640">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235247845068">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="nonTerminal" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232297361306" resolveInfo="NonTerminal" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235247421186">
    <property name="package" value="quantifications" />
    <property name="name" value="TerminalQuantification" />
    <link role="extends" targetNodeId="1232300288437" resolveInfo="Quantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235247452472">
      <property name="value" value="terminal quantification" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235247546022">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235248414813">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="terminal" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232297194437" resolveInfo="Terminal" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235247487668">
    <property name="package" value="quantifications" />
    <property name="name" value="ProductionQuantification" />
    <link role="extends" targetNodeId="1232300288437" resolveInfo="Quantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235247512493">
      <property name="value" value="production quantification" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235247536552">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235248021642">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="production" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1233232259885" resolveInfo="Production" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235326675813">
      <property name="metaClass" value="reference" />
      <property name="role" value="nonterminal" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232297361306" resolveInfo="NonTerminal" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235247556521">
    <property name="package" value="quantifications" />
    <property name="name" value="NonTerminalExists" />
    <link role="extends" targetNodeId="1235247353455" resolveInfo="NonTerminalQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235247636992">
      <property name="value" value="exists nonterminal" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235247788836">
    <property name="package" value="quantifications" />
    <property name="name" value="NonTerminalForAll" />
    <link role="extends" targetNodeId="1235247353455" resolveInfo="NonTerminalQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235247814540">
      <property name="value" value="for all nonterminals" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235248005838">
    <property name="package" value="quantifications" />
    <property name="name" value="ProductionExists" />
    <link role="extends" targetNodeId="1235247487668" resolveInfo="ProductionQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248202727">
      <property name="value" value="exists production" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235248286890">
    <property name="package" value="quantifications" />
    <property name="name" value="ProductionForAll" />
    <link role="extends" targetNodeId="1235247487668" resolveInfo="ProductionQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248308819">
      <property name="value" value="for all productions" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235248381509">
    <property name="package" value="quantifications" />
    <property name="name" value="TerminalExists" />
    <link role="extends" targetNodeId="1235247421186" resolveInfo="TerminalQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248440908">
      <property name="value" value="exists terminal" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235248491978">
    <property name="package" value="quantifications" />
    <property name="name" value="TerminalForAll" />
    <link role="extends" targetNodeId="1235247421186" resolveInfo="TerminalQuantification" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248522708">
      <property name="value" value="for all terminals" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235248775403">
    <property name="name" value="Regexp" />
    <property name="package" value="regexp" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235248787662">
      <property name="value" value="regexp" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235323814350">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235249204413">
    <property name="package" value="derivations" />
    <property name="name" value="RightmostDerivation" />
    <link role="extends" targetNodeId="1232303430291" resolveInfo="Derivation" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235249230720">
      <property name="value" value="rightmostly derives" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235320168457">
    <property name="name" value="FirstOrLast" />
    <property name="package" value="firstlast" />
    <link role="extends" targetNodeId="1235243559248" resolveInfo="Set" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235320417776">
      <property name="value" value="first or last" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235320428296">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235327563081">
      <property name="metaClass" value="reference" />
      <property name="role" value="variable" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232301037610" resolveInfo="Variable" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235320807374">
    <property name="package" value="firstlast" />
    <property name="name" value="First" />
    <link role="extends" targetNodeId="1235320168457" resolveInfo="FirstOrLast" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235320820709">
      <property name="value" value="first" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235320905030">
    <property name="package" value="firstlast" />
    <property name="name" value="FirstWithNonTerminals" />
    <link role="extends" targetNodeId="1235320168457" resolveInfo="FirstOrLast" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235320949056">
      <property name="value" value="first including non terminals" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235321008443">
    <property name="package" value="firstlast" />
    <property name="name" value="Last" />
    <link role="extends" targetNodeId="1235320168457" resolveInfo="FirstOrLast" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235321034503">
      <property name="value" value="last" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235321199500">
    <property name="package" value="firstlast" />
    <property name="name" value="LastWithNonTerminals" />
    <link role="extends" targetNodeId="1235320168457" resolveInfo="FirstOrLast" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235321237263">
      <property name="value" value="last including nonterminals" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235321386655">
    <property name="name" value="ProductionMatchesRegexp" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235321685739">
      <property name="metaClass" value="reference" />
      <property name="role" value="production" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1233232259885" resolveInfo="Production" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235321703848">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="regexp" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235248775403" resolveInfo="Regexp" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235327936580">
      <property name="value" value="production matches regexp" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235322128696">
    <property name="package" value="variables" />
    <property name="name" value="Symbol" />
    <link role="extends" targetNodeId="1232301037610" resolveInfo="Variable" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235322165305">
      <property name="value" value="symbol" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.BooleanConceptProperty" id="1235322175174">
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473854053" resolveInfo="abstract" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235322790021">
    <property name="name" value="SetContainsVariable" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235322908360">
      <property name="metaClass" value="reference" />
      <property name="role" value="variable" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232301037610" resolveInfo="Variable" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235323433235">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="set" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235243559248" resolveInfo="Set" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235323985334">
    <property name="package" value="regexp" />
    <property name="name" value="RegexpIteration" />
    <link role="extends" targetNodeId="1235248775403" resolveInfo="Regexp" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235324011039">
      <property name="value" value="iteration" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235324025293">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="regexp" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235248775403" resolveInfo="Regexp" />
    </node>
    <node role="propertyDeclaration" type="jetbrains.mps.lang.structure.structure.PropertyDeclaration" id="1235324625290">
      <property name="name" value="cardinality" />
      <link role="dataType" targetNodeId="1235324048994" resolveInfo="IterationCardinality" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.EnumerationDataTypeDeclaration" id="1235324048994">
    <property name="package" value="regexp" />
    <property name="name" value="IterationCardinality" />
    <property name="memberIdentifierPolicy" value="custom" />
    <property name="hasNoDefaultMember" value="true" />
    <link role="memberDataType" targetNodeId="2v.1082983041843" resolveInfo="string" />
    <node role="member" type="jetbrains.mps.lang.structure.structure.EnumerationMemberDeclaration" id="1235324048995">
      <property name="internalValue" value="*" />
      <property name="externalValue" value="*" />
      <property name="javaIdentifier" value="ASTERISK" />
    </node>
    <node role="member" type="jetbrains.mps.lang.structure.structure.EnumerationMemberDeclaration" id="1235324133490">
      <property name="internalValue" value="+" />
      <property name="externalValue" value="+" />
      <property name="javaIdentifier" value="PLUS" />
    </node>
    <node role="member" type="jetbrains.mps.lang.structure.structure.EnumerationMemberDeclaration" id="1235324133988">
      <property name="internalValue" value="?" />
      <property name="externalValue" value="?" />
      <property name="javaIdentifier" value="QUESTION" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235324239891">
    <property name="package" value="regexp" />
    <property name="name" value="RegexpAlternative" />
    <link role="extends" targetNodeId="1235248775403" resolveInfo="Regexp" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235324263295">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="regexp" />
      <property name="sourceCardinality" value="1..n" />
      <link role="target" targetNodeId="1235248775403" resolveInfo="Regexp" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235328041942">
      <property name="value" value="alternative" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235324366564">
    <property name="package" value="regexp" />
    <property name="name" value="RegexpSymbolReference" />
    <link role="extends" targetNodeId="1235248775403" resolveInfo="Regexp" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235324407700">
      <property name="value" value="symbol" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235324531118">
      <property name="metaClass" value="reference" />
      <property name="role" value="symbol" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235322128696" resolveInfo="Symbol" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235325017337">
    <property name="package" value="regexp" />
    <property name="name" value="RegexpDot" />
    <link role="extends" targetNodeId="1235248775403" resolveInfo="Regexp" />
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235325030372">
      <property name="value" value="dot" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235325067426">
    <property name="package" value="regexp" />
    <property name="name" value="RegexpSequence" />
    <link role="extends" targetNodeId="1235248775403" resolveInfo="Regexp" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235325110797">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="regexp" />
      <property name="sourceCardinality" value="1..n" />
      <link role="target" targetNodeId="1235248775403" resolveInfo="Regexp" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235328015616">
      <property name="value" value="sequence" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235325252524">
    <property name="name" value="SetIsEmpty" />
    <link role="extends" targetNodeId="1232283326360" resolveInfo="Formula" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235325272837">
      <property name="metaClass" value="aggregation" />
      <property name="role" value="set" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1235243559248" resolveInfo="Set" />
    </node>
    <node role="conceptProperty" type="jetbrains.mps.lang.structure.structure.StringConceptProperty" id="1235326558289">
      <property name="value" value="set is empty" />
      <link role="conceptPropertyDeclaration" targetNodeId="2v.1137473891462" resolveInfo="alias" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235325341274">
    <property name="name" value="ProductionIsEpsilon" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235325367101">
      <property name="metaClass" value="reference" />
      <property name="role" value="production" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1233232259885" resolveInfo="Production" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.structure.structure.ConceptDeclaration" id="1235325489919">
    <property name="name" value="NonTerminalIsStart" />
    <link role="extends" targetNodeId="2v.1133920641626" resolveInfo="BaseConcept" />
    <node role="linkDeclaration" type="jetbrains.mps.lang.structure.structure.LinkDeclaration" id="1235325587283">
      <property name="metaClass" value="reference" />
      <property name="role" value="nonterminal" />
      <property name="sourceCardinality" value="1" />
      <link role="target" targetNodeId="1232297361306" resolveInfo="NonTerminal" />
    </node>
  </node>
</model>

